Don't GC-scan stack data redundantly.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 18 Feb 2011 02:07:36 +0000 (21:07 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 18 Feb 2011 02:07:36 +0000 (21:07 -0500)
commitec55ced938fde0e236a65441d55f01246f300dbb
treeb63105f23c20784a4c9a29d452aaf41107235420
parent3ab8a9c6fa1c85674c6537e947f539e643edf5d3
Don't GC-scan stack data redundantly.
* src/alloc.c (Fgarbage_collect): When using stack scanning, don't
redundantly scan byte-code stacks, catchlist, and handlerlist.
* src/bytecode.c (BYTE_MAINTAIN_TOP): New macros.
(struct byte_stack): Only define `top' and `bottom' if used.
(mark_byte_stack): Only define if used.
(BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): Nullify if BYTE_MAINTAIN_TOP
is not set.
(Fbyte_code): Don't set `bottom' unless BYTE_MAINTAIN_TOP is set.
* src/lisp.h (BYTE_MARK_STACK): New macro.
(mark_byte_stack): Only declare if BYTE_MARK_STACK is set.
* src/term.c (OUTPUT_IF): Use OUTPUT.
src/ChangeLog
src/alloc.c
src/bytecode.c
src/lisp.h
src/term.c